Check for existence of VLAPIC before relinquishing it,
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Thu, 15 Dec 2005 19:42:09 +0000 (20:42 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Thu, 15 Dec 2005 19:42:09 +0000 (20:42 +0100)
or a vmx guest can die very early.

Signed-off-by: Xin Li <xin.b.li@intel.com>
xen/arch/x86/vmx.c

index e8e6f8d0b256d5dd5dc668835225e5c71ab3a1c5..6f087f8094fd6508ceb42856c6f49acb211a38c5 100644 (file)
@@ -110,12 +110,12 @@ void vmx_relinquish_resources(struct vcpu *v)
     vpit = &v->domain->arch.vmx_platform.vmx_pit;
     if ( active_ac_timer(&(vpit->pit_timer)) )
         rem_ac_timer(&vpit->pit_timer);
-    if ( active_ac_timer(&v->arch.arch_vmx.hlt_timer) ) {
+    if ( active_ac_timer(&v->arch.arch_vmx.hlt_timer) )
         rem_ac_timer(&v->arch.arch_vmx.hlt_timer);
-    }
-    if ( vmx_apic_support(v->domain) ) {
-        rem_ac_timer( &(VLAPIC(v)->vlapic_timer) );
-        xfree( VLAPIC(v) );
+    if ( vmx_apic_support(v->domain) && (VLAPIC(v) != NULL) )
+    {
+        rem_ac_timer(&VLAPIC(v)->vlapic_timer);
+        xfree(VLAPIC(v));
     }
 }